package com.ruoyi.system.service;

import java.util.List;
import com.ruoyi.system.domain.MdMaterial;

/**
 * 物料主数据Service接口
 * 
 * @author ruoyi
 * @date 2025-06-22
 */
public interface IMdMaterialService 
{
    /**
     * 查询物料主数据
     * 
     * @param id 物料主数据主键
     * @return 物料主数据
     */
    public MdMaterial selectMdMaterialById(String id);

    /**
     * 查询物料主数据列表
     * 
     * @param mdMaterial 物料主数据
     * @return 物料主数据集合
     */
    public List<MdMaterial> selectMdMaterialList(MdMaterial mdMaterial);

    /**
     * 新增物料主数据
     * 
     * @param mdMaterial 物料主数据
     * @return 结果
     */
    public int insertMdMaterial(MdMaterial mdMaterial);

    /**
     * 修改物料主数据
     * 
     * @param mdMaterial 物料主数据
     * @return 结果
     */
    public int updateMdMaterial(MdMaterial mdMaterial);

    /**
     * 批量删除物料主数据
     * 
     * @param ids 需要删除的物料主数据主键集合
     * @return 结果
     */
    public int deleteMdMaterialByIds(String[] ids);

    /**
     * 删除物料主数据信息
     * 
     * @param id 物料主数据主键
     * @return 结果
     */
    public int deleteMdMaterialById(String id);

    /**
     * 检查物料号在工厂内是否唯一
     * 
     * @param plantCode 工厂代码
     * @param materialCode 物料号
     * @param id 物料ID（编辑时排除自身）
     * @return 结果
     */
    public boolean checkMaterialCodeUnique(String plantCode, String materialCode, String id);

    /**
     * 导入物料数据
     * 
     * @param materialList 物料数据列表
     * @param isUpdateSupport 是否更新支持，如果已存在，则进行更新数据
     * @param operName 操作用户
     * @return 结果
     */
    public String importMaterial(List<MdMaterial> materialList, Boolean isUpdateSupport, String operName);
} 